<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注册</title>
    <link rel="stylesheet" href="./css/common.css">
    <link rel="stylesheet" href="./css/login.css">
</head>
<body>
    <div class="nav">
        网络五子棋对战游戏
    </div>
    <div class="login-container">
        <!-- 登录界面的对话框 -->
        <div class="login-dialog">
            <!-- 提示信息 -->
            <h3>注册</h3>
            <!-- 这个表示一行 -->
            <div class="row">
                <span>用户名</span>
                <input type="text" id="user_name" name="username">
            </div>
            <!-- 这是另一行 -->
            <div class="row">
                <span>密码</span>
                <input type="password" id="password" name="password">
            </div>
            <!-- 提交按钮 -->
            <div class="row">
                <button id="submit" onclick="reg()">提交</button>
            </div>
        </div>
    </div> 

    <script src="js/jquery.min.js"></script>
    <script>
        //1. 给按钮添加点击事件,调用注册函数
        //2. 封装实现注册函数
        function reg()
        {
            //1. 获取两个输入框中的数据,并组织成为Json串
            //var 是javeScript中声明变量的关键字
            //username 和  password 是 reg_info对象中的两个属性
            var reg_info = {
                username: document.getElementById("user_name").value,
                password: document.getElementById("password").value,
            };
        //使用JSON.stringify方法将reg_info对象转换为一个JSON字符串。
        //然后使用console.log将这个JSON字符串输出到浏览器的控制台。
        console.log(JSON.stringify(reg_info));
        //2. 通过Ajax;向`后台发送用户注册请求
        $.ajax({
                url : "/reg",
                type : "post",
                data : JSON.stringify(reg_info),
                success : function(res){
                    if(res.result == false)
                {
                    //4. 如果请求失败,则清空两个输入框的内容,并提示错误原因
                    document.getElementById("user_name").value = "";
                    document.getElementById("password").value = "";
                    //特别是使用JavaScript时，alert(res.reason); 这行代码的作用是弹出一个警告框（对话框），用于显示变量 res.reason 的值。
                    alert(res.reason);
                }
                else
                {
                    //3. 如果请求成功,则跳转到登录页面,
                    alert(res.reason);
                    //window：全局对象，代表包含当前文档的浏览器窗口。
                    // location：是 window 对象的一个属性，它包含了当前URL的信息，并且可以用来导航到新的页面。
                    // assign()：是 location 对象的一个方法，用于加载一个新的文档。
                    //window.location.assign("/login.html"); 这行代码的作用是将浏览器窗口（或框架）的地址（URL）重定向到指定的路径，
                    // 即在本例中是重定向到 /login.html 页面。
                    window.location.assign("/login.html");
                }
            },       
            //error是Ajax请求设置中的一个回调函数，当请求发生错误时执行。 
            //xhr 参数代表XMLHttpRequest对象，它包含了关于请求和响应的详细信息，包括状态码、响应文本、请求头等  
                error : function(xhr) {
                    document.getElementById("user_name").value = "";
                    document.getElementById("password").value = "";
                    alert(JSON.stringify(xhr));
                }
            })
    }
</script>
</body>
</html>